import request from "@/utils/request";

const CultureAPI = {
  /**
   * 获取文化内容分页列表
   *
   * @param pageNum 页码
   * @param pageSize 每页记录数
   * @param categoryId 分类ID（可选）
   * @returns 返回文化内容列表
   */
  getCultureContentList(params: {
    pageNum: string;
    pageSize: string;
    categoryId?: string;
  }): Promise<{
    list: CultureContentItem[];
    total: number;
  }> {
    let queryParams = `pageNum=${params.pageNum}&pageSize=${params.pageSize}`; // 使用模板字符串构建查询参数

    if (params.categoryId) {
      queryParams += `&categoryId=${params.categoryId}`; // 如果有 categoryId，追加到查询参数
    }

    return request<{
      list: CultureContentItem[];
      total: number;
    }>({
      url: `/api/v1/culture-content/page?${queryParams}`,
      method: "GET",
    });
  },

  /**
   * 获取文化分类分页列表
   *
   * @param pageNum 页码
   * @param pageSize 每页记录数
   * @returns 返回文化分类列表
   */
  getCultureCategoryList(params: { pageNum: string; pageSize: string }): Promise<{
    list: CultureCategoryItem[];
    total: number;
  }> {
    return request<{
      list: CultureCategoryItem[];
      total: number;
    }>({
      url: `/api/v1/culture-category/page?pageNum=${params.pageNum}&pageSize=${params.pageSize}`,
      method: "GET",
    });
  },

  /**
   * 获取文化内容详情
   *
   * @param id 文化内容ID
   * @returns 返回文化内容详情
   */
  getCultureContentDetail(id: number): Promise<CultureContentItem> {
    return request<CultureContentItem>({
      url: `/api/v1/culture-content/${id}/form`,
      method: "GET",
    });
  },
};

export default CultureAPI;

/** 文化内容列表响应 */
export interface CultureContentListResult {
  code: string;
  data: {
    list: CultureContentItem[];
    total: number;
  };
  msg: string;
}

/** 文化分类列表响应 */
export interface CultureCategoryListResult {
  code: string;
  data: {
    list: CultureCategoryItem[];
    total: number;
  };
  msg: string;
}

/** 文化内容详情响应 */
export interface CultureContentDetailResult {
  code: string;
  data: CultureContentItem;
  msg: string;
}

/** 文化内容项 */
export interface CultureContentItem {
  id: number;
  title: string;
  categoryId: number;
  author: string;
  content: string;
  status: number;
  viewCount: number;
  isDeleted?: number;
  createTime?: string;
  updateTime?: string;
  createBy?: number;
  updateBy?: number;
}

/** 文化分类项 */
export interface CultureCategoryItem {
  id: number;
  name: string;
  code: string;
  sort: number;
  description: string;
  status: number;
  isDeleted?: number;
  createTime?: string;
  updateTime?: string;
  createBy?: number;
  updateBy?: number;
}
